Listing available Properties of an DirectoryEntry object
If you are messing with IIS in C# code, you can do quite a bit if you System.DirectoryServices and the DirectoryEntry object. This can be extended if you know the name of the items in a the DirectoryEntry’s property collection. You can get these as follows:
using System; using System.Collections.Generic; using System.DirectoryServices; namespace FindIISLogWithCSharp { class Program { static void Main(string[] args) { List<string> AvailableProperties = new List<string>(); DirectoryEntry folderRoot = new DirectoryEntry("IIS://localhost/W3SVC"); PropertyCollection pc = folderRoot.Properties; foreach (PropertyValueCollection p in pc) { AvailableProperties.Add(p.PropertyName); } // Sort alphabetically AvailableProperties.Sort(); foreach (String prop in AvailableProperties) { Console.WriteLine(prop); } } } }
Of course, different DirectoryEntry objects can have different lists. However, this exact one created the following list on a Windows 2008 R2 64-bit Server with IIS installed and configured.
AccessFlags
AccessSSLFlags
AnonymousUserName
ApplicationDependencies
AppPoolId
AspDiskTemplateCacheDirectory
AuthFlags
DefaultDoc
DirBrowseFlags
DontLog
HttpCustomHeaders
HttpErrors
IIs5IsolationModeEnabled
KeyType
LogFileDirectory
LogPluginClsid
NTAuthenticationProviders
RedirectHeaders
ScriptMaps
SSIExecDisable
SslUseDsMapper
TraceUriPrefix
WebSvcExtRestrictionList